<?php


namespace app\utils;


class ArrayUtils
{
    /**根据二维数组中的某个字段进行去重
     * @param $array
     * @param $field
     * @return array|null
     */

    public static function arrayUnique($array,...$fields)
    {
        if (empty($array) || empty($fields)) {
            return null;
        }

        // 生成一个新的数组键，将多个字段组合成一个新的键值
        $compositeKeys = [];
        foreach ($array as $key => $row) {
            $compositeKey = '';
            foreach ($fields as $field) {
                $compositeKey .= $row[$field];
            }
            $compositeKeys[$key] = $compositeKey;
        }

        // 去重
        $compositeKeys = array_unique($compositeKeys);

        // 重新构建数组
        $data = [];
        foreach ($compositeKeys as $compositeKey) {
            $dataKey = array_search($compositeKey, $compositeKeys, true);
            $data[] = $array[$dataKey];
        }

        return $data;
    }



}